The interconnections that define communication networks can trace their origins to a web of metal conductors strung point-to-point. As communication needs have risen, fiber optic cabling has replaced metallic conductors in an effort to meet the demand for additional bandwidth, first using multi-mode and then single-mode optical fiber. Although the conductor capacity has changed over the years, much of the point-to-point topology, functionality, and associated limitations have been retained.
The configuration of a communications network can be dynamic, changing over time as devices are added and removed from the network, whether these changes are done intentionally or unintentionally (e.g., due to failure). Therefore, the path from one device to another may change periodically, for example due to network configuration change, congestion along a particular route, or for some other reason.
Data can be communicated over a communications network as discrete packets. Each packet of data can typically also include destination address information (e.g., in a header which might include other administrative information). Certain network devices (e.g., routers) can use a packet's destination information (e.g., from the packet's header) along with routing table information, to determine how to route each packet, e.g., where next to send a packet, on a communications network.
In communication networks it is likely that at some point, a cable or router will eventually fail or become overloaded and unable to forward packets. The communications network can failover to an alternative router (e.g., use an alternative router to transmit the data) to allow the communications network to continue to function.
For example, packets can travel from an originating router to a destination router and through a primary router. When the primary router fails, the originating router must wait for an update or discovery of the failure before it can update itself and start sending the packets through an alternate router.
Discovering the failure of the primary router and sending packets through the alternate router can require additional overhead to determine what packets were lost in the failure of the primary router. Also, the destination router may send an administrative request back to the originating router through the alternate router when it decides that the primary router has failed. The primary router can then send the packets again, but use the alternate router to transfer the packets to the destination router.
In another example, the originating router can forward packets to both the primary router and the alternate router. Once the primary router has failed and the failure has been detected, the alternate router can transmit the packets without having to forward the request back to the originating router.
In sending packets to both the primary router and the alternate router, the communications network has the added difficulty of determining how long the packets must be stored in the alternate router before being discarded. This difficulty can be solved, but requires increasing the overhead (e.g., additional executable instructions for handling the packets and storage space for the packets) and having the destination router send additional acknowledgements to the alternate router.